/*
	Copyright (C) 2019 Zongming Liu <1849059316@qq.com>

	This program is free software; you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation; either version 2 of the License, or
	(at your option) any later version.
	
	This program is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.
	
	You should have received a copy of the GNU General Public License along
	with this program; if not, write to the Free Software Foundation, Inc.,
	51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/

#ifndef MonsterDate_h__
#define MonsterDate_h__

#include "Interface.h"

class MonsterDateA
	:public IMonsterDate
{
public:


	virtual float getSpeed() override
	{
		return 30;
	}


	virtual int getTotalHp() override
	{
		return 300;
	}


	virtual int getNormalDamage() override
	{
		return 100;
	}


	virtual float getCritical() override
	{
		return 0.5;
	}


	virtual float getAttackDistance() override
	{
		return 110;
	}


	virtual Rect getShapeRect() override
	{
		return Rect(-15, 60, 50, 20);
	}

};


class MonsterDateB
	:public IMonsterDate
{
	
public:
	virtual float getSpeed() override
	{
		return 40;
	}


	virtual int getTotalHp() override
	{
		return 500;
	}


	virtual int getNormalDamage() override
	{
		return 120;
	}


	virtual float getCritical() override
	{
		return 0.1f;
	}

	virtual float getAttackDistance() override
	{
		return 110;
	}


	virtual Rect getShapeRect() override
	{
		return Rect(-15, 60, 50, 20);
	}

};

class MonsterDateBoos
	:public IMonsterDate
{
public:

	virtual float getSpeed() override
	{
		return 60;
	}


	virtual int getTotalHp() override
	{
		return 1000;
	}


	virtual int getNormalDamage() override
	{
		return 200;
	}


	virtual float getCritical() override
	{
		return 0;
	}

	virtual float getAttackDistance() override
	{
		return 250;
	}


	virtual Rect getShapeRect() override
	{
		return Rect(10, 100, 180, 30);
	}
};

#endif // MonsterDate_h__
